package com.framework.dao.active;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.framework.entity.sys.SysActive;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 功能描述: 活动
 *
 * @author ck
 * @date 2018/9/13 13:25
 */
public interface ActiveDao extends BaseMapper<SysActive> {
	/**
	 *个人详细活动
	 * @param agentId
	 * @param settleTime
	 * @return
	 */
	List<Map<String,Object>> queryParInHistoryLis(@Param("agentId") Long agentId,@Param("settleTime") String settleTime);

	/**
	 * 进行中的活动
	 * @param level
	 * @return
	 */
	List<Map<String,Object>> runningActList( @Param("level") Integer level);

	/**
	 * 查询是有有参与的历史记录
	 * @param agentId
	 * @return
	 */
	List<String> queryHistoryTimeList(@Param("agentId") Long agentId);

	/**
	 * 根据时间查询参与的活动信息返现的总金额
	 * @param agentId
	 * @param settleTime
	 * @return
	 */
	BigDecimal queryParInHistorySum(@Param("agentId") Long agentId,@Param("settleTime") String settleTime);

	/**
	 * 查询进行中活动详情
	 * @param activeId
	 * @return
	 */
	Map<String,Object> queryRunActiveInfo (@Param("activeId") Long activeId);

	/**
	 * 查询那里是记录活动
	 * @param activeId
	 * @param agentId
	 * @return
	 */
	Map<String,Object> queryHistoryActiveInfo (@Param("activeId") Long activeId,@Param("agentId") Long agentId);

	/**
	 * 活动列表 用于下拉框
	 * @return
	 * @param deptId
	 */
	List<SysActive> queryActiveList(@Param("deptId") Long deptId);

	/**
	 * 根据条件查询列表
	 * @param params
	 * @return
	 */
	List<SysActive> queryActiveTypeList(Map<String,Object> params);

	/**
	 * 数量 活动
	 * @param params
	 * @return
	 */
	Integer queryActiveTypeCount(Map<String,Object> params);

	/**
	 * 查询等级、类型查询活动
	 * @param level 等级
	 * @param type 活动类型
	 * @return
	 */
	Map<String,Object> runningActInfo( @Param("level") Integer level,@Param("type") Integer type);

	/**
	 * 添加
	 * @param sysActive
	 */
	void insertActiveType(SysActive sysActive);

	/**
	 * 根据id查询
	 * @param activeId
	 * @return
	 */
	SysActive queryActiveById(@Param("activeId")Long activeId );

	/**
	 * 修改活动
	 * @param sysActive
	 */
	void updateActiveById(SysActive sysActive);
}
